package com.liuqi.iot.domain.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.liuqi.common.base.domain.entity.BaseEntity;
import com.liuqi.iot.bean.GatewayConnectionInfo;
import com.liuqi.iot.bean.ScriptInfo;
import lombok.Data;

import java.util.Map;

/**
 * 网关
 *
 * @author  LiuQi 2025/3/22-12:49
 * @version V1.0
 **/
@Data
@TableName(value = "t_gateway", autoResultMap = true)
public class GatewayEntity extends BaseEntity {
    /**
     * 网关编号
     */
    private String code;

    /**
     * 网关名称
     */
    private String name;

    /**
     * 网关品牌
     */
    private String brand;

    /**
     * 网关型号
     */
    private String model;

    /**
     * 备注
     */
    private String remark;

    /**
     * 网关类型, 0: 虚拟网关；1：硬件网关
     */
    private Integer type;

    /**
     * 网关协议
     */
    private String protocol;

    /**
     * 网关连接信息
     */
    @TableField(typeHandler = FastjsonTypeHandler.class)
    private GatewayConnectionInfo connectionInfo;

    /**
     * 网关消息转换脚本
     */
    @TableField(typeHandler = FastjsonTypeHandler.class)
    private ScriptInfo converter;

    /**
     * 元数据
     */
    @TableField(typeHandler = FastjsonTypeHandler.class)
    private Map<String, Object> metadata;

    /**
     * 网关状态，0：离线，1：在线
     */
    private Integer status;

    /**
     * 关联设备数量
     */
    private Integer deviceCount;
}
